home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / comm / bbs / logic100.lha / manual / ARexxDoorSupport.doc < prev    next >
Encoding:
Text File  |  1995-03-01  |  7.7 KB  |  278 lines

  1.                                                      Date: March, 1. 1995
  2.  
  3.  
  4.  
  5.                           LogicBBS  v1.0 BETA
  6.                           <----------------->
  7.                              LITE VERSION
  8.  
  9.                       Copyright 1995 ParCon Software
  10.  
  11.  
  12.     System/node/door/library/AIM-XIM support programmed by Michael Pendec
  13.         Filechecker/Arexxdoor support programmed by Nicholas Clarke
  14.       All Testing was done by friends. Ideas supplied by various people.
  15.  
  16.  
  17.       Read "HowToOrder.doc", if you want to get the FINAL version.
  18. -----------------------------------------------------------------------------
  19.  
  20.  
  21.  
  22.                                Rexx support
  23. -----------------------------------------------------------------------------
  24.  
  25. LogicBBS supports Rexx both for use with server and in doors. If you want
  26. to start a terminal program, you can make a simple rexx script and execute
  27. it with RX either from shell, or through the buttons available to sysop
  28. in "server extended commands".
  29.  
  30.  
  31. Server message port: Sv1_MsgPort
  32.  
  33. Commands supported for use with the server are:
  34.  
  35. EXITSYSTEM  (n)      : System shutdown (n), where (n) is Server number
  36.                      : (n) must be assigned as 1, future versions support
  37.                        multiply servers.
  38.  
  39. SHUTDOWN (n)         : Close node (n)
  40.  
  41. OPENNODE (n)         : restart node (n)
  42.                      : If node is already running, the window will be opened,
  43.                      : and put in front as active window.
  44.  
  45.  
  46. rexx example for closing a node, and starting another task.
  47. -----------------------------------------------------------
  48.  
  49. -----------------------------------------------------------
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62. LogicBBS have two rexx script types available.
  63. The supported Ami-Express command glossary, and the new faster rexx support.
  64.  
  65.  
  66. If you want to "talk" to the node through the Ami-Express rexx script,
  67. you have the following commands available/supported:
  68.  
  69.  
  70. Portname/address:  AERexxControlN               ;where N is nodenumber
  71.  
  72.  
  73. PUTUSTR            : Set write value/string
  74.                      Used with  PUTUSER , PUTINFO
  75.  
  76. QUERY              : Set maximum number of characters which a user can
  77.                      enter, at a prompt for input.
  78.  
  79. RECEIVE            : Get input from serial/user
  80.  
  81. TRANSMIT           : Send string to user, and adds a return (CR/LF) at
  82.                      the end of string.
  83.  
  84. SENDMESSAGE        : Send string to user
  85. SENDSTRING         : Same as above
  86.  
  87. GETCHAR            : Read one character from serial
  88.  
  89. GETUSER            : Retrieve user information
  90.  
  91. PUTUSER            : Save user information
  92.  
  93. EDITFILE           : Edit file using internal message editor
  94.  
  95. FLAGFILE           : Add file to tagged files for download
  96.  
  97. SHOWFILE           : Display a file to user
  98.  
  99. SHOWGFILE          : Same as above, but checks for accesslevel dependent
  100.                      texts
  101.  
  102. SHUTDOWN           : Exit this script, and free node
  103.  
  104. REMOVERESERVED     : Remove node reservation if node is reserved for a user
  105.  
  106. PUTINFO            : Command valid only in combination with few cmd.numbers
  107.  
  108. GETINFO            : Command valid only in combination with few cmd.numbers
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118. LogicBBS ARexx Support Documentation.
  119.  
  120. The lbbs.library arexx support was written to provide an easy to use
  121. interface between ARexx programs and LogicBBS. As you may have noticed
  122. this library is also accessible from other programs. In other words this
  123. library offers supports for ARexx and non ARexx programs. The specific
  124. technical info is irrelevant but all options available to ARexx is also
  125. available for non ARexx programs using lbbs.library as a custom library.
  126.  
  127. The library is resident in the LogicBBS software. So if you cannot find
  128. the physical library you should not panic.
  129.  
  130. To use lbbs.library form ARexx you must add it to the global library list
  131. using either the addlib() function or the rxlib() command.
  132.  
  133. The current version number of this library is 5 and the query function
  134. offset is -474.
  135.  
  136. Examples:
  137.  from ARexx: addlib( 'lbbs.library', 0, -474, 1 )
  138.  from CLI  : rxlib lbbs.library 0 -474 1
  139.  
  140. Examples of ARexx doors are supplied else where in the LogicBBS package.
  141.  
  142. Table of Functions
  143.  
  144. LAllocNode
  145. LFreeNode
  146. LRead
  147. LReadNoCR
  148. LWrite
  149. LWriteCRLF
  150. LPrompt
  151. LReadOne
  152. LDisplayFile
  153. LEditFile
  154. LSendTextConsole
  155. LLoadLetter
  156. LSaveLetter
  157.  
  158. ;LGetData *FINAL VERSION*
  159. ;LSetdata *FINAL VERSION*
  160.  
  161. Usage:
  162.  
  163. LAllocNode()
  164. Usage: NodePtr = LAllocNode(NodeNr)
  165. Allocate a node for use with the program.
  166. Examples:
  167.     NodePtr = LAllocNode( NodeNr )            ==> NodePtr
  168.  
  169. LFreeNode()
  170. Usage: Boolean = LFreeNode(NodePtr)
  171. Removes an allocated node. If the node is already free or node pointer
  172. invalid false is returned.
  173. Examples:
  174.     LFreeNode( NodePtr )                ==> True/False
  175.  
  176. LRead()
  177. Usage: String = LRead(NodePtr,Length)
  178. This function reads a string from serial/console port, and returns the
  179. string. Reading is terminated with a CR, and stringbuffer is ended with
  180. a NULL. Function will automatically send a CR after its pressed.
  181. Examples:
  182.     String = LRead( NodePtr, 30 )            ==> String
  183.  
  184. LReadNoCR()
  185. Usage: String = LReadNoCR(NodePtr,Lenght)
  186. This function reads a string from serial/console port, and returns the
  187. string. Reading is terminated with a CR, and stringbuffer is ended with
  188. a NULL. Function will not send a CR after its pressed.
  189. Examples:
  190.     String = LReadNoCR( NodePtr, 30 )        ==> String
  191.  
  192. LWrite()
  193. Usage: String = LWrite(NodePtr,String,Length)
  194. Sends a string to serial/console, and returns.
  195. Examples:
  196.         text = 'hello there...'
  197.     LWrite( NodePtr, text, length( text ) )        ==> 1
  198.  
  199. LWriteCRLF()
  200. Usage: String = LWriteCRLF(NodePtr,String,Length,Boolean))
  201. Sends a string to serial/console, adds a CR/LF to the end of the string
  202. and returns.
  203. Examples:
  204.         text = 'hello there...'
  205.     LWriteCRLF( NodePtr, text, length( text ), 0 )    ==> 1
  206.  
  207. LPrompt()
  208. Usage: String = LPrompt(NodePtr,Length,String)
  209. This function types a string to the user and thereafter gets an
  210. inputstring from serial/console port. Reading is terminated with a CR,
  211. and stringbuffer is ended with a NULL.
  212. Examples:
  213.     text = 'Login: '
  214.     String = LPrompt( NodePtr, 30, text )        ==> String
  215.  
  216. LReadOne()
  217. Usage: String = LReadOne(NodePtr)
  218. This function reads a single character from serial/console port.
  219. Examples:
  220.     String = LReadOne( NodePtr )            ==> String
  221.  
  222. LDisplayFile()
  223. Usage: Boolean = LDisplayFile(NodePtr,FileName)
  224. This function will display a file to the user, function is given the
  225. full pathname together with the filename.
  226. Examples:
  227.     LDisplayFile( NodePtr, 'S:user.data' )        ==> 1
  228.  
  229. LEditFile()
  230. Usage: Boolean = LEditFile(NodePtr,Buffer,Maxlines)
  231. This function will allow the user to edit a file with use of the
  232. internal editor. Function only edits buffer, the file to edit, must
  233. be loaded into the buffer before this function is started.
  234. Examples:
  235.     LEditFile( NodePtr, Buffer, 100 )        ==> 1
  236.  
  237. LSendTextConsole()
  238. Usage: Boolean = LSendTextConsole(NodePtr,Text,Length,Boolean)
  239. Sends a string to console, if selected adds a CR/LF to the end of
  240. the string and returns.
  241. Examples:
  242.     text = 'Evening!'
  243.     LSendTextConsole( NodePtr, text, lenght(text), Boolean)
  244.                             ==> 1
  245.  
  246. LLoadLetter()
  247. Usage: Boolean = LLoadLetter(NodePtr,conference,letternumber,display/buffered,text,size)
  248. Loads a message, if selected into a buffer, otherwise display it to user
  249.  
  250. Examples:
  251.         display = 0
  252.         conference = 1
  253.         msgnumber = 1
  254.         size = 10000
  255.     LLoadLetter(NodePtr, conference, msgnumber, display, text, size)
  256.  
  257.  
  258. LGetData() *FINAL VERSION*
  259. LSetdata() *FINAL VERSION*
  260.  
  261.  
  262.  
  263.  
  264. simple rexx example for sending a text to a node.
  265. -----------------------------------------------------------
  266. NodeNr=1
  267.  
  268. addlib( 'lbbs.library', 0, -474, 0 )
  269.  
  270. NodePtr = LAllocNode( NodeNr )
  271. text = 'hello there...'
  272. LWrite( NodePtr,  text , length( text ) )
  273. LFreeNode( NodePtr )
  274.  
  275. remlib( 'lbbs.library' )
  276. exit
  277. -----------------------------------------------------------
  278.